package com.bkgy.modularbx.rule_edit.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;

import java.util.Date;

/**
 * 规则编辑表实体类，用于表示规则编辑的相关信息
 */
@Schema(description = "规则编辑表")
@TableName(value ="TB_DSJ_RULE_EDIT")
public class RuleEdit {
    /**
     * 产线
     */
    @Schema(description = "产线")
    private String productionLine;

    /**
     * 计算结果变量名，计算结果保存到MongoDB和数据字典的变量名也需添加计算结果变量
     */
    @Schema(description = "计算结果变量名，计算结果保存到MongoDB和数据字典的变量名也需添加计算结果变量")
    private String calcResultVariable;

    /**
     * 
     */
    @Schema(description = "主键ID")
    @TableId(type= IdType.AUTO)
    private Integer indocno;

    /**
     * 计算结果变量名中文
     */
    @Schema(description = "计算结果变量名中文")
    private String processRuleDescription;

    /**
     * 数据采集/字典中需要计算特征值的变量
     */
    @Schema(description = "数据采集/字典中需要计算特征值的变量")
    private String dicVariableNameCalc;

    /**
     * 变量名（数据采集中原始变量名）
     */
    @Schema(description = "变量名（数据采集中原始变量名）")
    private String l1VariableName;

    /**
     * 规则编辑器,最大最小平均值、标准差、极差、众数等
     */
    @Schema(description = "规则编辑器,最大最小平均值、标准差、极差、众数等")
    private String ruleEditor;

    /**
     * 规则名称
     */
    @Schema(description = "规则名称")
    private String ruleName;

    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    private Date toc;

    /**
     * 头尾数据处理标识
     */
    @Schema(description = "头尾数据处理标识")
    private String dataBegin;

    /**
     * 头尾数据处理标识
     */
    @Schema(description = "头尾数据处理标识")
    private String dataEnd;

    /**
     * 
     */
    @Schema(description = "备用字段")
    private String dataBegin1;

    /**
     * 去掉曲线头部米数后计算特征值
     */
    @Schema(description = "去掉曲线头部米数后计算特征值")
    private Integer headMove;

    /**
     * 去掉曲线尾部米数后计算特征值
     */
    @Schema(description = "去掉曲线尾部米数后计算特征值")
    private Integer tailMove;

    /**
     * 产线
     */
    public String getProductionLine() {
        return productionLine;
    }

    /**
     * 产线
     */
    public void setProductionLine(String productionLine) {
        this.productionLine = productionLine;
    }

    /**
     * 计算结果变量名，计算结果保存到MongoDB和数据字典的变量名也需添加计算结果变量
     */
    public String getCalcResultVariable() {
        return calcResultVariable;
    }

    /**
     * 计算结果变量名，计算结果保存到MongoDB和数据字典的变量名也需添加计算结果变量
     */
    public void setCalcResultVariable(String calcResultVariable) {
        this.calcResultVariable = calcResultVariable;
    }

    /**
     * 
     */
    public Integer getIndocno() {
        return indocno;
    }

    /**
     * 
     */
    public void setIndocno(Integer indocno) {
        this.indocno = indocno;
    }

    /**
     * 计算结果变量名中文
     */
    public String getProcessRuleDescription() {
        return processRuleDescription;
    }

    /**
     * 计算结果变量名中文
     */
    public void setProcessRuleDescription(String processRuleDescription) {
        this.processRuleDescription = processRuleDescription;
    }

    /**
     * 数据采集/字典中需要计算特征值的变量
     */
    public String getDicVariableNameCalc() {
        return dicVariableNameCalc;
    }

    /**
     * 数据采集/字典中需要计算特征值的变量
     */
    public void setDicVariableNameCalc(String dicVariableNameCalc) {
        this.dicVariableNameCalc = dicVariableNameCalc;
    }

    /**
     * 变量名（数据采集中原始变量名）
     */
    public String getL1VariableName() {
        return l1VariableName;
    }

    /**
     * 变量名（数据采集中原始变量名）
     */
    public void setL1VariableName(String l1VariableName) {
        this.l1VariableName = l1VariableName;
    }

    /**
     * 规则编辑器,最大最小平均值、标准差、极差、众数等
     */
    public String getRuleEditor() {
        return ruleEditor;
    }

    /**
     * 规则编辑器,最大最小平均值、标准差、极差、众数等
     */
    public void setRuleEditor(String ruleEditor) {
        this.ruleEditor = ruleEditor;
    }

    /**
     * 规则名称
     */
    public String getRuleName() {
        return ruleName;
    }

    /**
     * 规则名称
     */
    public void setRuleName(String ruleName) {
        this.ruleName = ruleName;
    }

    /**
     * 创建时间
     */
    public Date getToc() {
        return toc;
    }

    /**
     * 创建时间
     */
    public void setToc(Date toc) {
        this.toc = toc;
    }

    /**
     * 头尾数据处理标识
     */
    public String getDataBegin() {
        return dataBegin;
    }

    /**
     * 头尾数据处理标识
     */
    public void setDataBegin(String dataBegin) {
        this.dataBegin = dataBegin;
    }

    /**
     * 头尾数据处理标识
     */
    public String getDataEnd() {
        return dataEnd;
    }

    /**
     * 头尾数据处理标识
     */
    public void setDataEnd(String dataEnd) {
        this.dataEnd = dataEnd;
    }

    /**
     * 
     */
    public String getDataBegin1() {
        return dataBegin1;
    }

    /**
     * 
     */
    public void setDataBegin1(String dataBegin1) {
        this.dataBegin1 = dataBegin1;
    }

    /**
     * 去掉曲线头部米数后计算特征值
     */
    public Integer getHeadMove() {
        return headMove;
    }

    /**
     * 去掉曲线头部米数后计算特征值
     */
    public void setHeadMove(Integer headMove) {
        this.headMove = headMove;
    }

    /**
     * 去掉曲线尾部米数后计算特征值
     */
    public Integer getTailMove() {
        return tailMove;
    }

    /**
     * 去掉曲线尾部米数后计算特征值
     */
    public void setTailMove(Integer tailMove) {
        this.tailMove = tailMove;
    }

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        RuleEdit other = (RuleEdit) that;
        return (this.getProductionLine() == null ? other.getProductionLine() == null : this.getProductionLine().equals(other.getProductionLine()))
            && (this.getCalcResultVariable() == null ? other.getCalcResultVariable() == null : this.getCalcResultVariable().equals(other.getCalcResultVariable()))
            && (this.getIndocno() == null ? other.getIndocno() == null : this.getIndocno().equals(other.getIndocno()))
            && (this.getProcessRuleDescription() == null ? other.getProcessRuleDescription() == null : this.getProcessRuleDescription().equals(other.getProcessRuleDescription()))
            && (this.getDicVariableNameCalc() == null ? other.getDicVariableNameCalc() == null : this.getDicVariableNameCalc().equals(other.getDicVariableNameCalc()))
            && (this.getL1VariableName() == null ? other.getL1VariableName() == null : this.getL1VariableName().equals(other.getL1VariableName()))
            && (this.getRuleEditor() == null ? other.getRuleEditor() == null : this.getRuleEditor().equals(other.getRuleEditor()))
            && (this.getRuleName() == null ? other.getRuleName() == null : this.getRuleName().equals(other.getRuleName()))
            && (this.getToc() == null ? other.getToc() == null : this.getToc().equals(other.getToc()))
            && (this.getDataBegin() == null ? other.getDataBegin() == null : this.getDataBegin().equals(other.getDataBegin()))
            && (this.getDataEnd() == null ? other.getDataEnd() == null : this.getDataEnd().equals(other.getDataEnd()))
            && (this.getDataBegin1() == null ? other.getDataBegin1() == null : this.getDataBegin1().equals(other.getDataBegin1()))
            && (this.getHeadMove() == null ? other.getHeadMove() == null : this.getHeadMove().equals(other.getHeadMove()))
            && (this.getTailMove() == null ? other.getTailMove() == null : this.getTailMove().equals(other.getTailMove()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getProductionLine() == null) ? 0 : getProductionLine().hashCode());
        result = prime * result + ((getCalcResultVariable() == null) ? 0 : getCalcResultVariable().hashCode());
        result = prime * result + ((getIndocno() == null) ? 0 : getIndocno().hashCode());
        result = prime * result + ((getProcessRuleDescription() == null) ? 0 : getProcessRuleDescription().hashCode());
        result = prime * result + ((getDicVariableNameCalc() == null) ? 0 : getDicVariableNameCalc().hashCode());
        result = prime * result + ((getL1VariableName() == null) ? 0 : getL1VariableName().hashCode());
        result = prime * result + ((getRuleEditor() == null) ? 0 : getRuleEditor().hashCode());
        result = prime * result + ((getRuleName() == null) ? 0 : getRuleName().hashCode());
        result = prime * result + ((getToc() == null) ? 0 : getToc().hashCode());
        result = prime * result + ((getDataBegin() == null) ? 0 : getDataBegin().hashCode());
        result = prime * result + ((getDataEnd() == null) ? 0 : getDataEnd().hashCode());
        result = prime * result + ((getDataBegin1() == null) ? 0 : getDataBegin1().hashCode());
        result = prime * result + ((getHeadMove() == null) ? 0 : getHeadMove().hashCode());
        result = prime * result + ((getTailMove() == null) ? 0 : getTailMove().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", productionLine=").append(productionLine);
        sb.append(", calcResultVariable=").append(calcResultVariable);
        sb.append(", indocno=").append(indocno);
        sb.append(", processRuleDescription=").append(processRuleDescription);
        sb.append(", dicVariableNameCalc=").append(dicVariableNameCalc);
        sb.append(", l1VariableName=").append(l1VariableName);
        sb.append(", ruleEditor=").append(ruleEditor);
        sb.append(", ruleName=").append(ruleName);
        sb.append(", toc=").append(toc);
        sb.append(", dataBegin=").append(dataBegin);
        sb.append(", dataEnd=").append(dataEnd);
        sb.append(", dataBegin1=").append(dataBegin1);
        sb.append(", headMove=").append(headMove);
        sb.append(", tailMove=").append(tailMove);
        sb.append("]");
        return sb.toString();
    }
}